0. Java的char是16位! 一个char能存unicode表所有的字符包括中文, 如 char wo = '我'; 
	String str = "123我是321";
	char wo = str.charAt(3);
	System.out.println(wo); //输出为: 我

1. float的取值范围大于long;

2. 混合类型运算时8位或16位的类型都会升级成int类型:
	eg: int a = 10; 
		byte b = 1;
		b = a + b; //错误
		b = (byte)(a + b); //正确
		
3. +=,++等运算自带强制转换:
	eg:  byte b = 10;
		 b = b + 1; //错误
		 b = (byte)(b + 1); //正确
		 b++;		//正确
		 b += 1;	//正确

4. switch(a)的a只能是小于等于int的类型或String, 像long,float都不可以;

5. ^的特点：一个数据对另一个数据位异或两次，该数本身不变;

6. >>>:无符号右移 无论最高位是0还是1，左边补齐0;

7. Java的if()里面必须是boolean类型, 不能是什么int,byte, 这点和C/C++区别较大;

8. 数组初始化方式:
	int   len  = 3;
	int[] arr1 = {1,2,3};
	int[] arr2 = new int[]{1,2,3};
	int[] arr3 = new int[3];
	int[] arr4 = new int[len];
	
9. Java的数组在初始化那一刻就已经定下数组长度, 此后不可改数组长度, 更不能越界访问;
   Java的数组也是Object, 每个数组都有一个方法length()用于获取长度;
   想玩动态数组就去用ArrayList;
   Arrays类提供了大量操作数组的static方法, 输入参数是数组, 改变输入参数, 而不是返回;
   
10. 当你的类无任何构造方法时, 系统会帮你生成一个默认的无参构造方法;
	当你定义了构造方法, 不管有参无参, 系统就不会帮你生成无参构造方法了;
	
11. 局部代码块,构造代码块,静态代码块: 根据这些名字你应该可以推理出它们的调用时期和生命周期了吧;

12. 父子相同成员和相同方法:
		*子类定义了和父类一样的成员变量: 对内是两份(super,this区别), 对外是一份(只能访问子成员);
		*子类定义了和父类完全一样的普通方法: 对内是两份(super,this区别), 对外是一份(只能访问子方法);
		*子类定义了和父类完全一样的静态方法: 对内是两份(super,this或类名区别), 对外也是两份;
		
13. 重写体现多态, 静态无多态, 同名成员无多态:
		eg: ClassA有个普通方法out,输出"A";  ClassB继承了A并重写了out,输出"B";
				则: A a = new B; a.out();--->输出的是"B"
			ClassA有个静态方法out,输出"A";  ClassB继承了A并重写了out,输出"B";
				则: A a = new B; a.out();--->输出的是"A"	
			ClassA有个成员变量num=5; ClassB继承了A也定义个成员num=10:
				则: A a = new B; System.out.println(a.num);--->输出的是"5";

14. src下资源的路径可以用ClassLoader来获取。因为src下的资源最终会和.class存在同一目录下, 所以可以通过ClassLoader再通过
	相对路径来访问资源:
		eg: ShuoGGClass.class.getClassLoader().getResourceAsStream("123.jpg");
		
15. 关于垃圾回收和finalize():
		System.gc(); //手动召唤垃圾回收进行回收
		对象在被回收的前一刻会调用遗言:finalize(),就是java的析构; 是回收触发finalize,不是finalize触发回收;
		用户可以重写finalize(),还可以手动调用finalize(),但手动调用就相当于调用普通函数一样,和内存及垃圾回收一点关系都没;
		
16. 内部类使用this的问题:
		内部类的引用则直接用this;
		想用外部类的引用,则需要: 外部类.this;
		
17. 关于重写的修饰符改变, 只能往大的变，即子类必须必父类强，强就是指能对外提供更多的方法；
	若父方法为public，则子类的重写方法只能为public；若父方法为private，则子类的重写能任何修饰符；
	C++则不同，修饰符随便改，至少编译没问题；
	
18. 容器类里面存的是引用(指针), 不是存整个对象; 假设你将a放入一个list中, 然后改变了a的某个成员的值, 此时你在list中get出来你会
	发现get出来的对象的那个成员改变了; 想存对象就clone一个再存到容器中吧;
	

